import { LOGIN, USER, ROUTES, CENTER } from '@/services/api'
import { request, METHOD, removeAuthorization } from '@/utils/request'

/**
 * 获取用户列表
 * @param searchData 账户密码
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function getUsers(searchData) {
  return request(`${USER}/index`, METHOD.GET, {
    ...searchData
  })
}
/**
 * 获取用户详情
 * @param id 需要提交的数据
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function detail(id) {
  return await request(USER + '/detail', METHOD.GET, {
    id
  })
}
/**
 * 新增用户
 * @param data 需要提交的数据
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function add(data) {
  return request(USER + '/add', METHOD.POST, {
    ...data
  })
}
/**
 * 编辑用户
 * @param data 需要提交的数据
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function edit(data) {
  return request(USER + '/update', METHOD.POST, {
    ...data
  })
}
/**
 * 删除用户
 * @param {String/Array} ids 需要提交的数据
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function deleteItem(ids) {
  return request(USER + '/deletes', METHOD.POST, {
    ids
  })
}
/**
 * 进入个人中心接口
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function center(searchData) {
  return request(CENTER, METHOD.GET, {
    ...searchData
  })
}
/**
 * 个人中心修改提交接口
 * @param data 需要提交的数据
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function centerPost(data) {
  return request(USER + '/self', METHOD.POST, {
    ...data
  })
}
/**
 * 登录服务
 * @param name 账户名
 * @param password 账户密码
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function login(name, password) {
  return request(LOGIN, METHOD.POST, {
    username: name,
    password: password
  })
}

export async function getRoutesConfig() {
  return request(ROUTES, METHOD.GET)
}

/**
 * 退出登录
 */
export function logout() {
  localStorage.removeItem(process.env.VUE_APP_ROUTES_KEY)
  localStorage.removeItem(process.env.VUE_APP_PERMISSIONS_KEY)
  localStorage.removeItem(process.env.VUE_APP_ROLES_KEY)
  removeAuthorization()
}
export default {
  login,
  logout,
  getRoutesConfig
}

/**
 * 修改用户状态提交接口
 * @param data 需要提交的数据
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function changeUserStatus(user_id) {
  return request(USER + '/status', METHOD.GET, {
      id:user_id
  })
}


/**
 * 获取技术审核列表
 * @param data 需要提交的数据
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function getTechnologyManager() {
  return request(USER + '/technical', METHOD.GET, {
  })
}

/**
 * 获取工程师列表
 * @param data 需要提交的数据
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function getEngineers() {
  return request(USER + '/engineers', METHOD.GET, {
  })
}

/**
 * 获取人员列表
 * @param data 需要提交的数据
 * @returns {Promise<AxiosResponse<T>>}
 */
 export async function getUsersList() {
  return request(USER + '/list', METHOD.GET, {
  })
}
